import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions._

object scala4272 {
  def main(args: Array[String]): Unit = {
    // 初始化SparkSession
    val spark = SparkSession.builder()
      .appName("SalaryAnalysis")
      .master("local[*]")
      .getOrCreate()

    // 读取第一个CSV文件
    val df1 = spark.read
      .option("header", "true")
      .option("inferSchema", "true")
      .csv("src/main/resources/Employee_salary_first_half.csv")

    // 读取第二个CSV文件
    val df2 = spark.read
      .option("header", "true")
      .option("inferSchema", "true")
      .csv("src/main/resources/Employee_salary_second_half.csv")

    // 合并两个DataFrame
    val combinedDf = df1.union(df2)

    // 计算每位员工2020年的月均实际薪资
    val avgSalaryDf = combinedDf.groupBy("EmpID")
      .agg(avg($"Net_Pay").alias("Avg_Net_Pay"))

    // 显示结果
    avgSalaryDf.show()

    // 停止SparkSession
    spark.stop()
  }
}